package com.yuyou.fn.educational.service;

import com.github.wens.framework.service.ISuperService;
import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.educational.entity.Campus;
import com.yuyou.fn.educational.vo.CampusCondVo;
import com.yuyou.fn.educational.vo.CampusQueryCondVo;
import com.yuyou.fn.educational.vo.CampusQueryVo;
import com.yuyou.fn.educational.vo.CampusSaveOrUpdateVo;
import com.yuyou.fn.platform.permission.DataPermission;

import java.util.List;

/**
 *
 * Campus 表数据服务层接口
 *
 */
public interface ICampusService extends ISuperService<Campus,Long> {

    Page<Campus> findCampusByQueryForManage(CampusQueryVo campusQueryVo, DataPermission dataPermission, int pageNo, int pageSize);

    void updateCampus(CampusSaveOrUpdateVo campusSaveOrUpdateVo);

    void saveOrUpdateCampus(CampusSaveOrUpdateVo campusSaveOrUpdateVo);

    void deleteCampus(Long campusId);

    String findCampusNameByCampusId(Long campusId);

    List<Campus> findCampusByCityOrderByDistrict(String city);

    List<CampusCondVo> findCampusCond(String city);

    List<Campus> findCampusByCity(String city);

    List<Campus> findCampusByUserId(Long userId,Integer state);


    Page<Campus> findCampusByQueryForUse(CampusQueryVo campusQueryVo,DataPermission dataPermission, int pageNo, int pageSize);

    List<Campus> findCampusByCityFromCache(String city);

    Page<Campus> findCampusByQuery(CampusQueryVo campusQueryVo, int pageNo, int pageSize);

    List<Campus> findCampusByAreaTeamId(Long areaTeamId);

    List<Campus> findCampusByAreaTeamIdState(Long areaTeamId,Integer state);

    Page<Campus> findCampusByCondVo(CampusQueryCondVo campusQueryCondVo, int pageNo, int pageSize);

    void changeState(Long campusId,Integer state,String remarks);


    List<Campus> findByIdsAndStateAndAreaTeamIds(Integer state,List<Long> areaTeamIds);

    Campus findCampusByAreaTeamIdCampusName(Long areaTeamId, String campusName);
}